package com.ruoyi.recycle.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.recycle.domain.SalesmanManagement;
import com.ruoyi.recycle.dto.StatisticsDto;
import com.ruoyi.recycle.dto.TotalShopData;
import com.ruoyi.recycle.dto.TotalShopList;
import com.ruoyi.recycle.vo.MyBill;
import com.ruoyi.recycle.vo.OneShopStatisticsVo;

import java.util.List;

/**
 * 业务员管理Service接口
 *
 * @author Wubk
 * @date 2022-05-21
 */
public interface ISalesmanManagementService extends IService<SalesmanManagement> {
    /**
     * 查询业务员管理
     *
     * @param id 业务员管理主键
     * @return 业务员管理
     */
    public SalesmanManagement selectSalesmanManagementById(Long id);

    /**
     * 查询业务员管理列表
     *
     * @param salesmanManagement 业务员管理
     * @return 业务员管理集合
     */
    public List<SalesmanManagement> selectSalesmanManagementList(SalesmanManagement salesmanManagement);

    /**
     * 新增业务员管理
     *
     * @param salesmanManagement 业务员管理
     * @return 结果
     */
    public int insertSalesmanManagement(SalesmanManagement salesmanManagement);

    /**
     * 修改业务员管理
     *
     * @param salesmanManagement 业务员管理
     * @return 结果
     */
    public int updateSalesmanManagement(SalesmanManagement salesmanManagement);

    /**
     * 批量删除业务员管理
     *
     * @param ids 需要删除的业务员管理主键集合
     * @return 结果
     */
    public int deleteSalesmanManagementByIds(Long[] ids);

    /**
     * 删除业务员管理信息
     *
     * @param id 业务员管理主键
     * @return 结果
     */
    public int deleteSalesmanManagementById(Long id);

    TotalShopData selectTotalShopData(Long salesmanId);

    List<TotalShopList> selectTotalShopList(Long salesmanId);

    List<TotalShopList> selectTotalShopListOrderByToDayNewClient(Long salesmanId);

    List<TotalShopList> selectTotalShopListOrderByMonthNewClient(Long salesmanId);

    List<TotalShopList> selectTotalShopListOrderByMonthOrder(Long salesmanId);

    List<TotalShopList> selectTotalShopListByShopType(Long salesmanId, String shopType);

    List<TotalShopList> selectTotalShopListBySignTime(Long salesmanId, String signTime);

    OneShopStatisticsVo oneShopData(Long shopId);

    Long selectTotalPersonalInformation(Long salesmanId);

    MyBill myBill(Long salesmanId);

    List<StatisticsDto> newClientSum(Long shopId);

    List<StatisticsDto> orderSum(Long shopId);

    List<StatisticsDto> shopIncome(Long shopId);

    List<StatisticsDto> salesmanIncome(Long shopId);

    List<StatisticsDto> newClientSumDay(Long shopId, String signTime);

    List<StatisticsDto> orderSumDay(Long shopId, String signTime);

    List<StatisticsDto> shopIncomeDay(Long shopId, String signTime);

    List<StatisticsDto> salesmanIncomeDay(Long shopId, String signTime);

    TotalShopData selectTotalClientData(Long salesmanId);

    List<TotalShopList> selectTotalClientList(Long salesmanId, Integer type, String signTime);

    OneShopStatisticsVo oneClientData(Long clientId);

    List<StatisticsDto> clientNewClientSumDay(Long clientId, String signTime);

    List<StatisticsDto> clientOrderSumDay(Long clientId, String signTime);

    List<StatisticsDto> clientOrderIntegralSumDay(Long clientId, String signTime);

    List<StatisticsDto> clientSalesmanIncomeDay(Long clientId, String signTime);

    List<StatisticsDto> clientNewClientSum(Long clientId);

    List<StatisticsDto> clientOrderSum(Long clientId);

    List<StatisticsDto> clientShopIncome(Long clientId);

    List<StatisticsDto> clientSalesmanIncome(Long clientId);

}
